package pers.bbw.crr.util;

import cn.hutool.core.util.IdUtil;
import lombok.SneakyThrows;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

public class FileUtil {

    @SneakyThrows
    public static String upload(MultipartFile file) {
        //文件原始名称
        String originalFilename = file.getOriginalFilename(); // 获取源文件的名称
        //文件后缀
        String suffix = originalFilename.substring(originalFilename.indexOf("."));
        // 定义文件的唯一标识（前缀）
        String uuid = IdUtil.fastSimpleUUID();

        String rootFilePath = System.getProperty("user.dir") + "/file/" + uuid + suffix; // 获取上传的路径
        File rootFile = new File(rootFilePath);
        if (!rootFile.getParentFile().exists()) {
            rootFile.getParentFile().mkdirs();
        }
        cn.hutool.core.io.FileUtil.writeBytes(file.getBytes(), rootFilePath); // 把文件写入到上传的路径
        return "/file/" + uuid + suffix;
    }

    public static void delete(String fileUrl) {
        String rootFilePath = System.getProperty("user.dir") + fileUrl; // 获取上传的路径
        File file = new File(rootFilePath);
        file.delete();
    }

//    @SneakyThrows
//    public static String downLoad(String filePath,String fileName){
//        File file = new File(System.getProperty("user.dir") + filePath);
//        HttpHeaders headers = new HttpHeaders();
//        //下载显示的文件名，解决中文名称乱码问题
//        String suffix = fileName.substring(fileName.indexOf("."));
//         fileName = fileName + suffix;
//        String downloadFielName = new String(fileName.getBytes("UTF-8"),"iso-8859-1");
//        //通知浏览器以attachment（下载方式）打开图片
//        headers.setContentDispositionFormData("attachment", downloadFielName);
//        //application/octet-stream ： 二进制流数据（最常见的文件下载）。
//        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//        //通过fileutils的工具输入输出下载的文件
//        return new ResponseEntity<byte[]>(FileUtil.readFileToByteArray(file), headers, HttpStatus.CREATED);
//    }

}
